package com.ruoyi.invoice.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.invoice.domain.InvoiceProducts;
import com.ruoyi.invoice.domain.SalesInvoiceDetail;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * @BelongsProject: RuoYi-Cloud-master
 * @BelongsPackage: com.ruoyi.invoice.vo
 * @Author: songYuHang
 * @CreateTime: 2025-03-11  15:35
 * @Description: TODO
 * @Version: 1.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class SalesInvoiceDetailVo {

    private Long salesInvoiceId; // 销项发票ID
    private String invoiceTypeName; // 发票类型名称
    private String createBy; // 创建人

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime; // 创建时间

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime; // 更新时间
    private Long voucherId;
    private String wordName; // 凭证字

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date billingDate; // 开票日期
    private String invoiceCode; // 开票代码
    private String invoiceNumber; // 开票号码
    private Long isCancelled; // 是否作废
    private String customerName; // 客户名称
    private String taxpayerIdentificationNumber; // 纳税人识别码
    private String address; // 地址
    private String phoneNumber; // 电话
    private String bankName; // 开户银行
    private String accountNumber; // 账号
    private Long authenticationStatus; // 认证状态

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date authenticationDate; // 认证日期
    private String remarks; // 备注
    private String businessTypeName; // 业务类型名称
    private String templateName; // 模版类型名称
    private Long isDetailEntered; // 是否录入明细
    private BigDecimal taxExcludedAmount;
    private BigDecimal taxAmount;
    private BigDecimal totalAmount;

    private List<InvoiceProducts> invoiceProducts;

}
